Chrome 138 бета

Опубликовано: 28 мая 2025 г.

Если не указано иное, следующие изменения применяются к новейшему выпуску бета-канала Chrome для Android, ChromeOS, Linux, macOS и Windows. Узнайте больше о перечисленных здесь функциях по предоставленным ссылкам или из списка на ChromeStatus.com . Chrome 138 является бета-версией по состоянию на 28 мая 2025 года. Вы можете загрузить последнюю версию на Google.com для настольного компьютера или в Google Play Store на Android.

CSS и пользовательский интерфейс

В этом выпуске добавлены шесть новых функций CSS и пользовательского интерфейса.

CSS ключевое слово для stretch размера

Ключевое слово для свойств размера CSS (например, width и height ), которое позволяет элементам увеличиваться, чтобы точно заполнить доступное пространство содержащего их блока. Это похоже на 100% , за исключением того, что полученный размер применяется к полю поля элемента вместо поля, указанного box-sizing . Использование этого ключевого слова позволяет элементу сохранять свои поля, оставаясь при этом максимально большим.

Знаковые функции abs() и sign() вычисляют различные функции, связанные со знаком их аргумента.

Переменная CSS env для масштабирования шрифта на уровне ОС

Предоставляет предпочитаемый пользователем масштаб шрифта в CSS. В настоящее время непрактично, чтобы страница определяла, изменил ли пользователь свой предпочитаемый размер шрифта в настройках операционной системы. Эта переменная среды CSS будет отражать масштаб, выбранный пользователем.

CSS sibling-index() и sibling-count()

Функции sibling-index() и sibling-count() могут использоваться как целые числа в значениях свойств CSS для стилизации элемента на основе его положения среди его братьев и сестер или общего количества братьев и сестер соответственно. Эти функции могут использоваться напрямую как целые числа, но что более интересно внутри выражений calc() .

li {
  animation-delay: calc(0.1s * sibling-index());
}

Функциональная нотация прогресса интерполяции: функция CSS progress()

Функциональная нотация progress() представляет собой математическую функцию, которая возвращает значение <number> , представляющее положение одного вычисления (значение прогресса) между двумя другими вычислениями (начальное значение прогресса и конечное значение прогресса).

API перечисления сегментов области просмотра

API сегментов области просмотра позволяет разработчикам адаптировать свой веб-макет для целевых складных устройств. Сегменты области просмотра определяют положение и размеры логически отдельной области области просмотра. Сегменты области просмотра создаются, когда область просмотра разделена одной или несколькими аппаратными функциями (например, сгибом или шарниром между отдельными дисплеями), которые действуют как разделитель; сегменты — это области области просмотра, которые разработчик может рассматривать как логически отдельные.

Веб-API

Добавить поддержку метаданных ориентации видеокадра в WebCodecs

Вводит значения rotation: int и flip: bool для различных интерфейсов, связанных с видео, в WebCodecs, чтобы разработчики могли работать с источниками кадров, имеющими ориентацию (например, камеры Android и некоторые носители). Интерфейс VideoFrame расширяет возможности создания VideoFrame с произвольным вращением и переворотом, а также методы доступа к этой информации в объекте VideoFrame . Объект VideoDecoderConfig получает поля rotation и flip , которые автоматически выдаются в декодированных объектах VideoFrame. Класс VideoEncoder получает механизмы для передачи информации о вращении и перевороте из encode() в VideoDecoderConfig , выдаваемой как часть EncodedVideoChunkMetadata . Если encode() вызывается с кадрами с другой ориентацией, будет выдано нефатальное исключение. Метод configure() можно использовать для сброса разрешенной ориентации.

API отчетов о сбоях: is_top_level и visibility_state

Эта функция добавляет строковые поля is_top_level и visibility_state в тело API отчетов о сбоях, которое отправляется в конечную точку отчетов по умолчанию для отчетов о сбоях.

Экранирование < и > в атрибутах при сериализации

Экранирование < и > в значениях атрибутов при сериализации. Это снижает риск мутационных XSS-атак, которые происходят, когда значение атрибута интерпретируется как токен начального тега после сериализации и повторного анализа.

Политика целостности для скриптов

Subresource-Integrity (SRI) позволяет разработчикам убедиться, что активы, которые они намереваются загрузить, действительно являются активами, которые они загружают. Но в настоящее время у разработчиков нет способа убедиться, что все их скрипты проверены с помощью SRI. Заголовок Integrity-Policy дает разработчикам возможность утверждать, что каждый ресурс определенного типа должен быть проверен на целостность. Если ресурс этого типа попытаются загрузить без метаданных целостности, эта попытка не удастся и вызовет отчет о нарушении.

Предсказуемая сообщаемая квота хранения

Сообщайте прогнозируемую квоту хранения из API оценки StorageManager для сайтов, которые не имеют неограниченных разрешений на хранение. Можно определить режим просмотра пользователя с помощью сообщаемой квоты хранения, поскольку доступное пространство для хранения значительно меньше в режиме инкогнито, чем в обычном режиме.

Это смягчение, которое предотвращает обнаружение режима просмотра пользователя с помощью API хранилища путем сообщения искусственной квоты, равной использованию + min(10 GiB, диск округляется до ближайшего 1 GiB), во всех режимах просмотра для сайтов с ограниченными разрешениями на хранение. Сайты с неограниченными разрешениями на хранение не будут затронуты. Принудительная квота также не будет затронута.

событие pushsubscriptionchange при повторной подписке

Запускайте событие pushsubscriptionchange в service worker, когда источнику, для которого push-подписка существовала в прошлом, но которая была отозвана из-за изменения разрешения (с предоставленного на отклонение/по умолчанию), повторно предоставляется разрешение на уведомление. Событие будет запущено с пустыми oldSubscription и newSubscription .

Правила спекуляции: добавьте prefetchCache и prerenderCache в заголовок Clear-Site-Data

Два новых значения для заголовка Clear-Site-Data которые помогут разработчикам нацелиться на очистку кэша prerender и prefetch: prefetchCache и prerenderCache . Они могут быть отправлены в любых запросах и не обязательно должны быть сделаны в запросе документа (например, они могут быть возвращены в ответах на вызовы API добавления в корзину или входа и выхода для очистки предположений об изменении состояния).

Правила спекуляции: поле target_hint

Это расширяет синтаксис правил спекуляции, позволяя разработчикам указывать поле target_hint . Это поле предоставляет подсказку для указания целевого navigable, где предварительно отрендеренная страница в конечном итоге будет активирована. Если _blank указано как подсказка, предварительно отрендеренная страница может быть активирована для navigable, открытого window.open() . Поле не поддерживается для предварительной выборки.

Строгая политика единого источника для API доступа к хранилищу

Настраивает семантику API доступа к хранилищу для строгого соблюдения политики единого источника в отношении безопасности. То есть, использование document.requestStorageAccess() во фрейме по умолчанию прикрепляет файлы cookie только к запросам к источнику iframe (не сайту).

API сумматора

API JavaScript для создания резюме входного текста, подкрепленное языковой моделью ИИ. Браузеры и операционные системы все чаще должны получать доступ к языковой модели. Предоставляя эту встроенную модель, мы избегаем необходимости загрузки каждой веб-страницей собственной многогигабайтной языковой модели или отправки входного текста сторонним API. API-интерфейс сумматора, в частности, предоставляет высокоуровневый API для взаимодействия с языковой моделью с целью суммирования входных данных для различных вариантов использования способом, который не зависит от конкретной рассматриваемой языковой модели. Доступна корпоративная политика ( GenAILocalFoundationalModelSettings ) для отключения загрузки базовой модели, что сделает этот API недоступным.

Узнайте больше в статье Создание кратких резюме с помощью встроенного ИИ .

API детектора языка

JavaScript API для определения языка, используемого в определенном тексте, с определенными уровнями уверенности. Это важное дополнение к определению языка перевода, которое может использоваться в сочетании с Translator API . Например, возьмите пользовательский ввод на неизвестном языке, определите его язык, а затем переведите его на определенный целевой язык. Хотя браузеры часто уже имеют возможности определения языка, это дает ту же мощность веб-разработчикам с JavaScript API, дополняя API перевода.

Доступна корпоративная политика ( GenAILocalFoundationalModelSettings ), которая позволяет отключить загрузку базовой модели, что сделает этот API недоступным.

Подробнее читайте в статье Определение используемого языка с помощью встроенного ИИ .

API переводчика

JavaScript API для предоставления возможностей языкового перевода веб-страницам. Хотя браузеры все чаще предлагают языковой перевод своим пользователям, такие возможности перевода также могут быть полезны веб-разработчикам. Это особенно актуально, когда встроенные возможности перевода браузера не могут помочь, например, в случае с живыми и интерактивными сервисами. Корпоративная политика ( GenAILocalFoundationalModelSettings ) доступна для отключения загрузки базовой модели, что сделает этот API недоступным.

Узнайте больше в статье Перевод со встроенным ИИ .

Расширения области действия веб-приложений

Добавляет поле манифеста веб-приложения "scope_extensions" , позволяющее веб-приложениям расширять свою область действия на другие источники. Это позволяет сайтам, которые контролируют несколько поддоменов и доменов верхнего уровня, быть представленными как одно веб-приложение. Требует перечисленных источников для подтверждения связи с веб-приложением с помощью файла конфигурации .well-known/web-app-origin-association .

Веб-сериал через Bluetooth на Android

Эта функция позволяет веб-страницам и веб-приложениям подключаться к последовательным портам через Bluetooth на устройствах Android . Chrome на Android теперь поддерживает Web Serial API через Bluetooth RFCOMM. Существующие корпоративные политики ( DefaultSerialGuardSetting , SerialAllowAllPortsForUrls , SerialAllowUsbDevicesForUrls , SerialAskForUrls и SerialBlockedForUrls ) на других платформах включены в состояниях future_on для Android. Все политики, кроме SerialAllowUsbDevicesForUrls , будут включены после включения функции. SerialAllowUsbDevicesForUrls будет включен при будущем запуске после того, как Android предоставит поддержку проводных последовательных портов на системном уровне.

Устаревания и удаления

В этой версии Chrome представлены следующие устаревания и удаления. Посетите ChromeStatus.com для получения списков запланированных устаревших функций, текущих устаревших функций и предыдущих удалений.

В этой версии Chrome устарели две функции.

Отменить асинхронное удаление диапазона для расширений Media Source

Стандарт Media Source давно изменился, чтобы запретить неоднозначно определенное поведение, включающее асинхронное удаление диапазонов:

  • SourceBuffer.abort() больше не прерывает операции SourceBuffer.remove() .
  • Параметр MediaSource.duration больше не может обрезать текущий буферизованный медиафайл.

Теперь в обоих случаях будут возникать исключения.

Удалить резервный SwiftShader

Разрешение автоматического отката к WebGL, поддерживаемому программным рендерером SwiftShader, устарело, и создание контекста WebGL будет завершаться ошибкой вместо отката к SwiftShader. Это было сделано по двум основным причинам:

  1. SwiftShader представляет высокий риск безопасности из-за JIT-кода, работающего в процессе графического процессора Chromium.
  2. Пользователи испытывают неприятные ощущения при откате от высокопроизводительного WebGL с поддержкой GPU к реализации с поддержкой CPU. Пользователи не могут контролировать это поведение, и его трудно описать в отчетах об ошибках.

В течение периода устаревания предупреждение будет появляться в консоли Chrome DevTools при создании контекста WebGL и поддержке SwiftShader. Передача --enable-unsafe-swiftshader удалит это предупреждающее сообщение.